package cn.est.service.impl;

import cn.est.pojo.Malfunction;
import cn.est.pojo.MalfunctionOptions;
import cn.est.service.EvaluateService;
import cn.est.service.MalfunctionOptionsService;
import cn.est.service.MalfunctionService;
import cn.est.vo.MalfunctionOptionsVO;
import cn.est.vo.MalfunctionVO;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;
@Service
public class EvaluateServiceImpl implements EvaluateService {
    @Autowired
    private MalfunctionService malfunctionService;
    @Autowired
    private MalfunctionOptionsService malfunctionOptionsService;

    @Override
    public List<MalfunctionVO> getSpecListByModelId(Long modelId) {
        List<MalfunctionVO> malfunctionVOList = new ArrayList<>();
        //根据型号Id查询相关的故障
        List<Malfunction> malfunctionList = malfunctionService.listModelId(modelId);

        for (Malfunction malfunction : malfunctionList) {
            // 把 malfunction 转换成 MalfunctionVO 对象
            MalfunctionVO malfunctionVO = new MalfunctionVO();
            BeanUtils.copyProperties(malfunction,malfunctionVO);

            //g根据故障Id查询具体的故障选项
            Long malfunctionId = malfunction.getId();
            List<MalfunctionOptions> malfunctionOptionsList = malfunctionOptionsService.listByMalfId(malfunctionId);
            List<MalfunctionOptionsVO> optionsList = new ArrayList<>();
            for (MalfunctionOptions options : malfunctionOptionsList) {
                MalfunctionOptionsVO optionsVO = new MalfunctionOptionsVO();
                BeanUtils.copyProperties(options,optionsVO);
                optionsList.add(optionsVO);
            }
            malfunctionVO.setOptionsList(optionsList);

            // 把转换好的 malfunctionVO  加到 malfunctionVOList 集合中去
            malfunctionVOList.add(malfunctionVO);
        }
        return malfunctionVOList;
    }
}
